package com.xl.web.dao.sys;

import java.util.List;

import com.xl.base.dao.BaseDao;
import com.xl.base.page.BasePage;
import com.xl.web.entity.sys.SysMember;
import com.xl.web.entity.sys.SysRoleMember;
import com.xl.web.entity.sys.SysRoleMenu;

/**
 * 菜单基础表Dao
 * 
 * @author 梁华
 * 
 * @param <T>
 */
public interface SysRoleDao<T> extends BaseDao<T> {

	/**
	 * 根据code查询角色
	 * 
	 * @param code
	 * @return
	 */
	public T queryByCode(Object code);

	/**
	 * 检测角色是否存在
	 * 
	 * @param page
	 * @return
	 */
	public int checkRoleExist(BasePage page);

	/**
	 * 插入角色分配菜单记录
	 * 
	 * @param item
	 */
	public void addRoleMenu(SysRoleMenu item);

	/**
	 * 删除角色分配菜单记录
	 * 
	 * @param id
	 */
	public void deleteRoleMenu(Object id);

	/**
	 * 根据RoleId删除角色分配菜单记录
	 * 
	 * @param roleId
	 */
	public void deleteRoleMenuByRoleId(Object roleId);

	/**
	 * 根据menuId删除角色分配菜单记录
	 * 
	 * @param menuId
	 */
	public void deleteRoleMenuByMenuId(Object menuId);

	/**
	 * 插入角色分配账号记录
	 * 
	 * @param item
	 */
	public void addRoleMember(SysRoleMember item);

	/**
	 * 删除角色分配账号记录
	 * 
	 * @param id
	 */
	public void deleteRoleMember(Object id);

	/**
	 * 根据memberId删除角色分配人员的记录
	 * 
	 * @param id
	 */
	public void deleteRoleMemberByMemberId(Object memberId);

	/**
	 * 根据roleId删除角色分配人员的记录
	 * 
	 * @param id
	 */
	public void deleteRoleMemberByRoleId(Object roleId);

	/**
	 * 查询用户所拥有的id
	 * @param sysRoleMember
	 * @return
	 */
	public List<SysRoleMember> memberRoleList(SysRoleMember sysRoleMember );
}
